/*
 * 文件名：buzzer.cpp
 * 功能描述：蜂鸣器控制
 */

#include <Arduino.h>
#include "config.h"

int freq = 2700;       // 声音的频率（Hz）
int ledcChannel = 5;   // PWM 通道（可以使用多个通道）
int ledcResolution = 8; // PWM 分辨率（8 位 = 0-255）

// 初始化函数，进行硬件引脚、库、设置的配置
void buzzer_init() {
    // 初始化蜂鸣器引脚
    pinMode(BUZZER_PIN, OUTPUT);
    // 设置蜂鸣器引脚的 PWM 控制
    ledcSetup(ledcChannel, freq, ledcResolution);  // 设置 PWM 通道、频率、分辨率
    ledcAttachPin(BUZZER_PIN, ledcChannel);         // 将引脚绑定到 PWM 通道
}

// 封装控制蜂鸣器的函数
void playBuzzer(int dutyCycle, int duration,int s) {
    ledcWrite(ledcChannel, dutyCycle); // 使用 PWM 通道设置占空比
    delay(duration);                   // 延时控制蜂鸣器播放的时间
    ledcWrite(ledcChannel, 0);         // 关闭蜂鸣器
    delay(s);
}